package com.ruoyi.langchain4j.assistant;

import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;

/**
 * 对话,带有聊天记忆
 */
@AiService(wiringMode = EXPLICIT,
        chatModel = "ollamaChatModel",
        chatMemory = "chatMemory")
public interface MemoryChatAssistant {

    /**
     *  {{it}}占位符,是固定的不能改变
     *  it代表了userMessage,用户提问时,会将userMessage替换it
     */
    @UserMessage("你是我的好朋友,请用普通话回答问题,回答的时候适当添加表情符号,{{it}}")//用户提示词
    String chat(String userMessage);

    /**
     * @V("message")  明确定义参数,message为可自定义占位符名称,但是在@UserMessage中的占位符{{message}}名称要保持一致
     */
    @UserMessage("你是我的好朋友,请用普通话回答问题,回答的时候适当添加表情符号,{{message}}")//用户提示词
    String chat1(@V("message") String userMessage);

}
